<!-- HTML header for doxygen 1.8.20-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
	<meta http-equiv="X-UA-Compatible" content="IE=9"/>
	<meta name="generator" content="Doxygen 1.9.4"/>
	<meta name="viewport" content="width=device-width, initial-scale=1"/>
	<title>Raspberry Pi Pico SDK: Hardware APIs</title>
	<!-- <link href="tabs.css" rel="stylesheet" type="text/css"/> -->
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="dynsections.js"></script>
	<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
	<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap" rel="stylesheet">
	<link href="doxygen.css" rel="stylesheet" type="text/css" />
	<link href="normalise.css" rel="stylesheet" type="text/css"/>
<link href="main.css" rel="stylesheet" type="text/css"/>
<link href="styles.css" rel="stylesheet" type="text/css"/>
</head>
<body>
	<div class="navigation-mobile">
		<div class="logo--mobile">
			<a href="/"><img src="logo-mobile.svg" alt="Raspberry Pi"></a>
		</div>
		<div class="navigation-toggle">
			<span class="line-1"></span>
			<span class="line-2">
				<p>Menu Toggle</p>
			</span>
			<span class="line-3"></span>
		</div>
	</div>
	<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
		<div class="logo">
			<a href="index.html"> <img src="logo.svg" alt="Raspberry Pi"></a>
			<span style="display: inline-block; margin-top: 10px;">
				v2.0.0
			</span>
		</div>
		<div class="navigation-footer">
			<img src="logo-mobile.svg" alt="Raspberry Pi">
			<a href="https://www.raspberrypi.com/" target="_blank">By Raspberry Pi Ltd</a>
		</div>
<!-- 		<div class="search">
			<form>
				<input type="search" name="search" id="search" placeholder="Search">
				<input type="submit" value="Search">
			</form>
		</div> -->
<!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('group__hardware.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#groups">Modules</a>  </div>
  <div class="headertitle"><div class="title">Hardware APIs</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
Modules</h2></td></tr>
<tr class="memitem:group__hardware__adc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__adc.html">hardware_adc</a></td></tr>
<tr class="memdesc:group__hardware__adc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Analog to Digital Converter (ADC) API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__base.html">hardware_base</a></td></tr>
<tr class="memdesc:group__hardware__base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-level types and (atomic) accessors for memory-mapped hardware registers. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__claim"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__claim.html">hardware_claim</a></td></tr>
<tr class="memdesc:group__hardware__claim"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lightweight hardware resource management API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__clocks"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__clocks.html">hardware_clocks</a></td></tr>
<tr class="memdesc:group__hardware__clocks"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clock Management API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__divider"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__divider.html">hardware_divider</a></td></tr>
<tr class="memdesc:group__hardware__divider"><td class="mdescLeft">&#160;</td><td class="mdescRight">RP2040 Low Low-level hardware-divider API. Non-RP2040 platforms provide software versions of all the functions. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__dcp"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__dcp.html">hardware_dcp</a></td></tr>
<tr class="memdesc:group__hardware__dcp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assembly macros for the Double Coprocessor. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__dma"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__dma.html">hardware_dma</a></td></tr>
<tr class="memdesc:group__hardware__dma"><td class="mdescLeft">&#160;</td><td class="mdescRight">DMA Controller API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__exception"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__exception.html">hardware_exception</a></td></tr>
<tr class="memdesc:group__hardware__exception"><td class="mdescLeft">&#160;</td><td class="mdescRight">Methods for setting processor exception handlers. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__flash"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__flash.html">hardware_flash</a></td></tr>
<tr class="memdesc:group__hardware__flash"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low level flash programming and erase API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__gpio"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__gpio.html">hardware_gpio</a></td></tr>
<tr class="memdesc:group__hardware__gpio"><td class="mdescLeft">&#160;</td><td class="mdescRight">General Purpose Input/Output (GPIO) API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__hazard3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__hazard3.html">hardware_hazard3</a></td></tr>
<tr class="memdesc:group__hardware__hazard3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessors for Hazard3-specific RISC-V CSRs, and intrinsics for Hazard3 custom instructions. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__i2c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__i2c.html">hardware_i2c</a></td></tr>
<tr class="memdesc:group__hardware__i2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">I2C Controller API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__interp"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__interp.html">hardware_interp</a></td></tr>
<tr class="memdesc:group__hardware__interp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware Interpolator API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__irq"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__irq.html">hardware_irq</a></td></tr>
<tr class="memdesc:group__hardware__irq"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware interrupt handling API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__pio"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__pio.html">hardware_pio</a></td></tr>
<tr class="memdesc:group__hardware__pio"><td class="mdescLeft">&#160;</td><td class="mdescRight">Programmable I/O (PIO) API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__pll"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__pll.html">hardware_pll</a></td></tr>
<tr class="memdesc:group__hardware__pll"><td class="mdescLeft">&#160;</td><td class="mdescRight">Phase Locked Loop control APIs. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__powman"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__powman.html">hardware_powman</a></td></tr>
<tr class="memdesc:group__hardware__powman"><td class="mdescLeft">&#160;</td><td class="mdescRight">Power Management API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__pwm"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__pwm.html">hardware_pwm</a></td></tr>
<tr class="memdesc:group__hardware__pwm"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware Pulse Width Modulation (PWM) API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__resets"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__resets.html">hardware_resets</a></td></tr>
<tr class="memdesc:group__hardware__resets"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware Reset API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__riscv"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__riscv.html">hardware_riscv</a></td></tr>
<tr class="memdesc:group__hardware__riscv"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessors for standard RISC-V hardware (mainly CSRs) <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__riscv__platform__timer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__riscv__platform__timer.html">hardware_riscv_platform_timer</a></td></tr>
<tr class="memdesc:group__hardware__riscv__platform__timer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessors for standard RISC-V platform timer (mtime/mtimecmp), available on Raspberry Pi microcontrollers with RISC-V processors. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__rtc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__rtc.html">hardware_rtc</a></td></tr>
<tr class="memdesc:group__hardware__rtc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware Real Time Clock API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__rcp"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__rcp.html">hardware_rcp</a></td></tr>
<tr class="memdesc:group__hardware__rcp"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inline functions and assembly macros for the Redundancy Coprocessor. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__spi"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__spi.html">hardware_spi</a></td></tr>
<tr class="memdesc:group__hardware__spi"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware SPI API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__sha256"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__sha256.html">hardware_sha256</a></td></tr>
<tr class="memdesc:group__hardware__sha256"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware SHA-256 Accelerator API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__sync"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__sync.html">hardware_sync</a></td></tr>
<tr class="memdesc:group__hardware__sync"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low level hardware spin locks, barrier and processor event APIs. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__ticks"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__ticks.html">hardware_ticks</a></td></tr>
<tr class="memdesc:group__hardware__ticks"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware Tick API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__timer"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__timer.html">hardware_timer</a></td></tr>
<tr class="memdesc:group__hardware__timer"><td class="mdescLeft">&#160;</td><td class="mdescRight">Low-level hardware timer API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__uart"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__uart.html">hardware_uart</a></td></tr>
<tr class="memdesc:group__hardware__uart"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware UART API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__vreg"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__vreg.html">hardware_vreg</a></td></tr>
<tr class="memdesc:group__hardware__vreg"><td class="mdescLeft">&#160;</td><td class="mdescRight">Voltage Regulation API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__watchdog"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__watchdog.html">hardware_watchdog</a></td></tr>
<tr class="memdesc:group__hardware__watchdog"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hardware Watchdog Timer API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:group__hardware__xosc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hardware__xosc.html">hardware_xosc</a></td></tr>
<tr class="memdesc:group__hardware__xosc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Crystal Oscillator (XOSC) API. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p >This group of libraries provides a thin and efficient C API / abstractions to access the RP-series microcontroller hardware without having to read and write hardware registers directly. </p>
</div><!-- contents -->
</div><!-- doc-content -->

	<script src="main.js"></script>
</body>
</html>